﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Pobieracz
{
    public partial class Glowna : Form
    {
        private Wrzuta wrzuta;
        private Pobieranie pobieranie = new Pobieranie();
        private List<string> tytulyWrzuta = new List<string>();

        public Glowna()
        {
            InitializeComponent();
        }

        private void bSzukaj_Click(object sender, EventArgs e)
        {
            lbWyszukiwanie.Items.Clear();

            if (tbWyszukiwanie.Text == String.Empty || String.IsNullOrWhiteSpace(tbWyszukiwanie.Text) == true)
            {
                MessageBox.Show("Wpisz nazwę szukanego utworu");
            }
            else
            {
                wrzuta = new Wrzuta(tbWyszukiwanie.Text);
                wrzuta.Wyszukiwanie();

                wypelnianieListy();
            }
        }

        private void wypelnianieListy()
        {
            for (int i = 0; i < wrzuta.listaTytulyWrzuta.Count; i++)
            {
                StringBuilder sb = new StringBuilder(wrzuta.listaTytulyWrzuta[i]);
                sb.Replace("alt=\"", "");
                sb.Replace("onload", "");
                sb.Replace("\"", "");
                lbWyszukiwanie.Items.Add(sb.ToString());
            }
        }

        private void lbWyszukiwanie_SelectedIndexChanged(object sender, EventArgs e)
        {
            wrzuta.WyciaganieSciezkiDoPobrania(lbWyszukiwanie.SelectedIndex);
        }

        private void lbWyszukiwanie_MouseClick(object sender, MouseEventArgs e)
        {
            if (lbWyszukiwanie.Items.Count != 0)
            {
                if (e.Button == MouseButtons.Left)
                {
                    cmsMenuWyszukiwanie.Show(MousePosition);
                }
            }
        }

        private void cmsPodglad_Click(object sender, EventArgs e)
        {
            //axShockwaveFlash1.LoadMovie(0, "about:a");
            //axShockwaveFlash1.Hide();
            axWindowsMediaPlayer1.Show();
            axWindowsMediaPlayer1.URL = wrzuta.wydobytaSciezka;
        }

        private void tbWyszukiwanie_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                bSzukaj.PerformClick();
            }
        }

        private void bDalej_Click(object sender, EventArgs e)
        {
            wrzuta.licznikStronWrzuta++;
            lLicznik.Text = wrzuta.licznikStronWrzuta.ToString();
            lbWyszukiwanie.Items.Clear();

            wrzuta.Wyszukiwanie();
            wypelnianieListy();
        }

        private void bWstecz_Click(object sender, EventArgs e)
        {
            wrzuta.licznikStronWrzuta--;
            lLicznik.Text = wrzuta.licznikStronWrzuta.ToString();
            lbWyszukiwanie.Items.Clear();

            wrzuta.Wyszukiwanie();
            wypelnianieListy();
        }

        private void dodajDoKolejkiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            lbPobieranie.Items.Add(lbWyszukiwanie.SelectedItem);
            pobieranie.dodawanieDoKolejkiPobierania(wrzuta.wydobytaSciezka);
        }

        private void usunToolStripMenuItem_Click(object sender, EventArgs e)
        {
            pobieranie.usuwanieZKolejkiPobierania(lbPobieranie.SelectedIndex);
            lbPobieranie.Items.Remove(lbPobieranie.SelectedItem);
        }

        private void lbPobieranie_MouseClick(object sender, MouseEventArgs e)
        {
            if (lbPobieranie.Items.Count != 0)
            {
                if (e.Button == MouseButtons.Left)
                {
                    cmsMenuPobieranie.Show(MousePosition);
                }
            }
        }

        private void przeslijTytuly()
        {
            for (int i = 0; i < lbPobieranie.Items.Count; i++)
            {
                tytulyWrzuta.Add(lbPobieranie.Items[i].ToString());
            }
            pobieranie.odbierzTytuly(tytulyWrzuta);
        }

        private void bPobieranie_Click(object sender, EventArgs e)
        {
            folderBrowserDialog1.ShowDialog();
            pobieranie.wybierzSciezkeZapisu(folderBrowserDialog1.SelectedPath.ToString());
            bPobieranie.Enabled = false;
            przeslijTytuly();
            pobieranie.PobierzAsynchronicznie();
            lbPobieranie.Enabled = false;
        }

        private void tCzyZakonczono_Tick(object sender, EventArgs e)
        {
            if (pobieranie.w.IsBusy == false)
            {
                tCzyZakonczono.Stop();

                DialogResult odpowiedz;
                odpowiedz = MessageBox.Show("Zakończono pobieranie plików. Chcesz rozpocząć nowe pobieranie?", "Pobieracz", MessageBoxButtons.YesNo);
                if (odpowiedz == DialogResult.No)
                {
                    Application.Exit();
                }
                else
                {
                    bPobieranie.Enabled = true;
                    pobieranie.rozpocznijNowePobieranie();
                    lbPobieranie.Items.Clear();
                    lbWyszukiwanie.Items.Clear();
                    progressBar1.Value = 0;
                }
            }
        }
    }
}
